package com.caregiver.watch.business.care.enums;

import lombok.Getter;

/**
 * @Description: 年龄阶段枚举
 * @Author 疆戟
 * @Date 2025/10/26 14:00
 * @Version 1.0
 */
@Getter
public enum AgeGroupEnum {
    
    /**
     * 成年人
     */
    ADULT(1, "成年人") {

        @Override
        protected boolean match(Integer age) {
            return age >= 18 && age < 65;
        }
    },
    
    /**
     * 老年人
     */
    ELDERLY(2, "老年人") {

        @Override
        protected boolean match(Integer age) {
            return age >= 65;
        }
    };
    
    private final Integer code;
    private final String desc;
    
    AgeGroupEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public static AgeGroupEnum parse(Integer age) {
        for (AgeGroupEnum value : AgeGroupEnum.values()) {
            if (value.match(age)) {
                return value;
            }
        }
        return null;
    }

    protected abstract boolean match(Integer age);
}
